package com.ruoyi.common.core.domain.base.datam;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 渠道信息登记对象 wc_chan_b
 *
 * @author hwd
 * @date 2023-02-16
 */
@Data
@TableName("wc_chan_b")
public class WcChanB extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 渠道编码 */
    private String chanCd;

    private String parentChanCd;

    /** 渠道名称 */
    @Excel(name = "渠道名称")
    private String chanNm;

    /** 水源类型 */
    @Excel(name = "水源类型", readConverterExp = "1=河流,2=湖泊,3=水库,4=井泵,5=再生水,6=其他")
    private String wsType;

    /** 水源代码 */
    @Excel(name = "水源代码")
    private String wsCd;

    /** 起始地址 */
    @Excel(name = "起始地址")
    private String startAddr;

    /** 起始经度 */
    @Excel(name = "起始经度")
    private Long startE;

    /** 起始纬度 */
    @Excel(name = "起始纬度")
    private Long startN;

    /** 终止地址 */
    @Excel(name = "终止地址")
    private String endAddr;

    /** 终止经度 */
    @Excel(name = "终止经度")
    private Long endE;

    /** 终止纬度 */
    @Excel(name = "终止纬度")
    private Long endN;

    /** 渠道类型 */
    @Excel(name = "渠道类型", readConverterExp = "1=灌溉,2=灌排,3=排水")
    private String chanType;

    /** 渠道长度 */
    @Excel(name = "渠道长度")
    private BigDecimal chanLen;

    /** 设计流量 */
    @Excel(name = "设计流量")
    private BigDecimal chanFlow;

    /** 渠系利用系数 */
    @Excel(name = "渠系利用系数")
    private BigDecimal chanRate;

    /** 建成日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "建成日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date chanDate;

    /** 备注 */
    @Excel(name = "备注")
    private String chanMark;

    /**所有地块灌溉面积*/
    private BigDecimal sumLandSize;

    /**所有年取水量*/
    private BigDecimal sumYrVol;

    /**所有末级渠道年取水量*/
    private BigDecimal mjYrVol;

    /**所有下级渠道年取水量*/
    private BigDecimal sumChanYrVol;

    /**所有下级渠道年取水量*/
    private BigDecimal sumMjYrVol;

    /**子渠道*/
    private List<WcChanB> childWcChanB;

    public void setChanCd(String chanCd)
    {
        this.chanCd = chanCd;
    }

    public String getChanCd()
    {
        return chanCd;
    }
    public void setChanNm(String chanNm)
    {
        this.chanNm = chanNm;
    }

    public String getChanNm()
    {
        return chanNm;
    }
    public void setWsType(String wsType)
    {
        this.wsType = wsType;
    }

    public String getWsType()
    {
        return wsType;
    }
    public void setWsCd(String wsCd)
    {
        this.wsCd = wsCd;
    }

    public String getWsCd()
    {
        return wsCd;
    }
    public void setStartAddr(String startAddr)
    {
        this.startAddr = startAddr;
    }

    public String getStartAddr()
    {
        return startAddr;
    }
    public void setStartE(Long startE)
    {
        this.startE = startE;
    }

    public Long getStartE()
    {
        return startE;
    }
    public void setStartN(Long startN)
    {
        this.startN = startN;
    }

    public Long getStartN()
    {
        return startN;
    }
    public void setEndAddr(String endAddr)
    {
        this.endAddr = endAddr;
    }

    public String getEndAddr()
    {
        return endAddr;
    }
    public void setEndE(Long endE)
    {
        this.endE = endE;
    }

    public Long getEndE()
    {
        return endE;
    }
    public void setEndN(Long endN)
    {
        this.endN = endN;
    }

    public Long getEndN()
    {
        return endN;
    }
    public void setChanType(String chanType)
    {
        this.chanType = chanType;
    }

    public String getChanType()
    {
        return chanType;
    }
    public void setChanLen(BigDecimal chanLen)
    {
        this.chanLen = chanLen;
    }

    public BigDecimal getChanLen()
    {
        return chanLen;
    }
    public void setChanFlow(BigDecimal chanFlow)
    {
        this.chanFlow = chanFlow;
    }

    public BigDecimal getChanFlow()
    {
        return chanFlow;
    }
    public void setChanRate(BigDecimal chanRate)
    {
        this.chanRate = chanRate;
    }

    public BigDecimal getChanRate()
    {
        return chanRate;
    }
    public void setChanDate(Date chanDate)
    {
        this.chanDate = chanDate;
    }

    public Date getChanDate()
    {
        return chanDate;
    }
    public void setChanMark(String chanMark)
    {
        this.chanMark = chanMark;
    }

    public String getChanMark()
    {
        return chanMark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("chanCd", getChanCd())
            .append("chanNm", getChanNm())
            .append("wsType", getWsType())
            .append("wsCd", getWsCd())
            .append("startAddr", getStartAddr())
            .append("startE", getStartE())
            .append("startN", getStartN())
            .append("endAddr", getEndAddr())
            .append("endE", getEndE())
            .append("endN", getEndN())
            .append("chanType", getChanType())
            .append("chanLen", getChanLen())
            .append("chanFlow", getChanFlow())
            .append("chanRate", getChanRate())
            .append("chanDate", getChanDate())
            .append("chanMark", getChanMark())
            .toString();
    }
}
